home *** CD-ROM | disk | FTP | other *** search
/ Planet Source Code Jumbo …e CD Visual Basic 1 to 7 / 1_2002.ISO / Data / Zips / String Mak244058102001.psc / String Maker / TrayArea.ctl < prev    next >
Encoding:
Text File  |  1999-04-14  |  5.7 KB  |  197 lines

  1. VERSION 5.00
  2. Begin VB.UserControl TrayArea 
  3.    Appearance      =   0  'Flat
  4.    BackColor       =   &H80000005&
  5.    CanGetFocus     =   0   'False
  6.    ClientHeight    =   3600
  7.    ClientLeft      =   0
  8.    ClientTop       =   0
  9.    ClientWidth     =   4800
  10.    ClipControls    =   0   'False
  11.    InvisibleAtRuntime=   -1  'True
  12.    ScaleHeight     =   3600
  13.    ScaleWidth      =   4800
  14.    ToolboxBitmap   =   "TrayArea.ctx":0000
  15.    Begin VB.Image Image1 
  16.       Appearance      =   0  'Flat
  17.       BorderStyle     =   1  'Fixed Single
  18.       Height          =   510
  19.       Left            =   0
  20.       Picture         =   "TrayArea.ctx":00FA
  21.       Top             =   0
  22.       Width           =   510
  23.    End
  24. End
  25. Attribute VB_Name = "TrayArea"
  26. Attribute VB_GlobalNameSpace = False
  27. Attribute VB_Creatable = True
  28. Attribute VB_PredeclaredId = False
  29. Attribute VB_Exposed = False
  30. Option Explicit
  31.  
  32. 'Tray Icon by Andrea Tincani
  33. 'For other VB stuff go to *** pages.hotbot.com/edu/tincani.andrea/index.html ***
  34.  
  35. 'Tray Area Data structure for API calls
  36. Private Type NOTIFYICONDATA
  37.     cbSize As Long
  38.     hwnd As Long
  39.     UID As Long
  40.     uFlags As Long
  41.     uCallBackmessage As Long
  42.     hIcon As Long
  43.     szTip As String * 64
  44. End Type
  45.  
  46. 'Tray area operation constants
  47. Private Const NIM_ADD = &H0
  48. Private Const NIM_MODIFY = &H1
  49. Private Const NIM_DELETE = &H2
  50.  
  51. Private Const NIF_MESSAGE = &H1
  52. Private Const NIF_ICON = &H2
  53. Private Const NIF_TIP = &H4
  54.  
  55. 'Mouse event constants
  56. Private Const WM_MOUSEMOVE = &H200
  57. Private Const WM_LBUTTONDBLCLK = &H203
  58. Private Const WM_LBUTTONDOWN = &H201
  59. Private Const WM_LBUTTONUP = &H202
  60. Private Const WM_RBUTTONDBLCLK = &H206
  61. Private Const WM_RBUTTONDOWN = &H204
  62. Private Const WM_RBUTTONUP = &H205
  63. Private Const WM_MOUSEOVER = &H200
  64.  
  65. Private Declare Function Shell_NotifyIcon Lib "shell32" (ByVal dwMessage As Long, pnid As NOTIFYICONDATA) As Boolean
  66.  
  67. 'Type to pass to the API
  68. Dim nid As NOTIFYICONDATA
  69. 'Property default values
  70. Const m_def_Visible = False
  71. Const m_def_ToolTip = ""
  72. 'Property variabls
  73. Dim m_Visible As Boolean
  74. Dim m_ToolTip As String
  75. Dim m_Icon As Picture
  76. 'events definition
  77. Event MouseMove()
  78. Event MouseDown(Button As Integer)
  79. Event MouseUp(Button As Integer)
  80. Event DblClick() 'MappingInfo=UserControl,UserControl,-1,DblClick
  81. Attribute DblClick.VB_Description = "Viene generato quando si preme e si rilascia due volte in rapida successione un pulsante del mouse su un oggetto."
  82.  
  83. Public Property Get Icon() As Picture
  84.     Set Icon = m_Icon
  85. End Property
  86.  
  87. Public Property Set Icon(ByVal New_Icon As Picture)
  88.     Set m_Icon = New_Icon
  89.     If New_Icon Is Nothing Then
  90.         Visible = False
  91.     Else
  92.         If m_Visible Then
  93.             nid.uFlags = NIF_ICON
  94.             nid.hIcon = m_Icon
  95.             Shell_NotifyIcon NIM_MODIFY, nid
  96.         End If
  97.     End If
  98.     PropertyChanged "Icon"
  99. End Property
  100.  
  101. Public Property Get ToolTip() As String
  102.     ToolTip = m_ToolTip
  103. End Property
  104.  
  105. Public Property Let ToolTip(ByVal New_ToolTip As String)
  106.     m_ToolTip = Trim(New_ToolTip)
  107.     nid.uFlags = NIF_TIP
  108.     nid.szTip = m_ToolTip & vbNullChar
  109.     Shell_NotifyIcon NIM_MODIFY, nid
  110.     PropertyChanged "ToolTip"
  111. End Property
  112.  
  113. 'Property Initialization
  114. Private Sub UserControl_InitProperties()
  115.     Set m_Icon = LoadPicture("")
  116.     m_ToolTip = m_def_ToolTip
  117.     m_Visible = m_def_Visible
  118. End Sub
  119.  
  120. Private Sub UserControl_ReadProperties(PropBag As PropertyBag)
  121.  
  122.     Set m_Icon = PropBag.ReadProperty("Icon", Nothing)
  123.     m_ToolTip = PropBag.ReadProperty("ToolTip", m_def_ToolTip)
  124.     m_Visible = PropBag.ReadProperty("Visible", m_def_Visible)
  125. End Sub
  126.  
  127. Private Sub UserControl_Resize()
  128.     Static inloop As Boolean
  129.     
  130.     If inloop Then Exit Sub
  131.     inloop = True
  132.     Height = Image1.Height
  133.     Width = Image1.Width
  134.     inloop = False
  135. End Sub
  136.  
  137. Private Sub UserControl_Terminate()
  138.     Shell_NotifyIcon NIM_DELETE, nid
  139. End Sub
  140.  
  141. Private Sub UserControl_WriteProperties(PropBag As PropertyBag)
  142.     Call PropBag.WriteProperty("Icon", m_Icon, Nothing)
  143.     Call PropBag.WriteProperty("ToolTip", m_ToolTip, m_def_ToolTip)
  144.     Call PropBag.WriteProperty("Visible", m_Visible, m_def_Visible)
  145. End Sub
  146.  
  147. Private Sub UserControl_MouseMove(Button As Integer, Shift As Integer, x As Single, y As Single)
  148.     Select Case x / Screen.TwipsPerPixelX
  149.     Case WM_LBUTTONDBLCLK
  150.         RaiseEvent DblClick
  151.     Case WM_LBUTTONDOWN
  152.         RaiseEvent MouseDown(vbLeftButton)
  153.     Case WM_LBUTTONUP
  154.         RaiseEvent MouseUp(vbLeftButton)
  155.     Case WM_RBUTTONDBLCLK
  156.         RaiseEvent DblClick
  157.     Case WM_RBUTTONDOWN
  158.         RaiseEvent MouseDown(vbRightButton)
  159.     Case WM_RBUTTONUP
  160.         RaiseEvent MouseUp(vbRightButton)
  161.     Case WM_MOUSEOVER
  162.         RaiseEvent MouseMove
  163.     End Select
  164. End Sub
  165.  
  166. Public Property Get Visible() As Boolean
  167. Attribute Visible.VB_MemberFlags = "400"
  168.     Visible = m_Visible
  169. End Property
  170.  
  171. Public Property Let Visible(ByVal New_Visible As Boolean)
  172.     If m_Visible = New_Visible Then Exit Property
  173.     m_Visible = New_Visible
  174.     If m_Visible Then
  175.         If Ambient.UserMode Then
  176.             nid.cbSize = Len(nid)
  177.             nid.hwnd = UserControl.hwnd
  178.             nid.UID = Int((Rnd * 65535) + 1)
  179.             nid.uFlags = NIF_MESSAGE
  180.             If Not m_Icon Is Nothing Then
  181.                 nid.uFlags = nid.uFlags + NIF_ICON
  182.                 nid.hIcon = m_Icon
  183.             End If
  184.             If m_ToolTip <> "" Then
  185.                 nid.uFlags = nid.uFlags + NIF_TIP
  186.                 nid.szTip = m_ToolTip & vbNullChar
  187.             End If
  188.             nid.uCallBackmessage = WM_MOUSEMOVE
  189.             Shell_NotifyIcon NIM_ADD, nid
  190.         End If
  191.     Else
  192.         Shell_NotifyIcon NIM_DELETE, nid
  193.     End If
  194.     PropertyChanged "Visible"
  195. End Property
  196.  
  197.